import java.awt.Graphics;
import java.awt.Point;
import java.util.Observer;

/**
 * Interface of methods concerning operations on cells.
 * To be implemented by a class that performs actions on cells.
 */
public interface GridInterface
{
	public void setCellHighlighted(boolean cellData, Point xy);
	public void setCellsHighlighted(boolean[][] cellData);
	public void setCellLocked(boolean cellData, Point xy);
	public void setCellsLocked(boolean[][] cellData);
	public void setCellError(boolean cellData, Point xy);
	public void setCellsError(boolean[][] cellData);
	public void setCellData(int cellData, Point xy);
	public int getCellData(Point xy);
	public void setCellsData(int[][] cellData);
	public int[][] getCellsData();
	public Cell getCell(Point xy);
	public Cell[][] getCells();
    public void addNumberEnteredObserver(Observer o);
    public void deleteNumberEnteredObserver(Observer o);
    public void componentResized();
	public void resetControl();
	public void grabImage(Graphics g, Point xy, Point dim);
	public void performMouseClick(Point thePoint);
}
